#include <iostream>
#include <vector>
using namespace std;

class Solution {
public:
    vector<int> applyOperations(vector<int>& nums) {
        // 遍历数组
        for (int i = 0; i < nums.size() - 1; i++)
        {
            // 判断
            if (nums[i] == nums[i + 1])
            {
                nums[i] *= 2, nums[i + 1] = 0;
            }
        }
        // 二次遍历数组，将所有的0移动到数组的末尾
        int k = 0;
        for (int j = 0; j < nums.size(); j++)
        {
            if (nums[j] == 0)
            {
                k++;
            }else{
                nums[j - k] = nums[j];
            }
        }
        // 第三次遍历
        for (int t = nums.size() - k; t < nums.size(); t++)
        {
            nums[t] = 0;
        }
        
        return nums;
    }
};

int main(){

    vector<int> v;
    for (int i = 0; i < 100; i++)
    {
        v.push_back(i * 20 -70 / 5);
    }
    Solution s;
    vector<int> res = s.applyOperations(v);
    for (int i = 0; i < res.size(); i++)
    {
        cout << res.at(i) << endl;
    }
    

    return 0;
}